I compiled the Bonjour source code myself both for Linux and windows. Then I succeed in publishing and detecting services for two Windows devices. But I can't use Bonjour between a windows device and a Linux device. So is this a limitation? If not, any tips on how to solve it?
There’s no fundamental reason why you shouldn’t be able to advertise a service on Windows and discover it on Linux, or vice versa. Likewise for Apple platforms. All of these platforms speak the same on-the-wire protocol [1].
As to why that’s not working, I don’t support either of those platforms so it’s hard to say. If I were in your shoes I’d put all of these devices on the same network and then, on my Mac, use the dns-sd
command-line tool to exercise the various cases. For example, if you advertise a service on both Windows and Linux and dns-sd
can see one but not the other, it’s likely that you have an advertising problem on that one.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
[1] Remember that Bonjour is an Apple term for three industry-standard protocols:
-
RFC 6762 Multicast DNS
-
RFC 6763 DNS-Based Service Discovery